//
//  HomeViewController.swift
//  Weibo
//
//  Created by 张婷 on 15/10/14.
//  Copyright © 2015年 itheima. All rights reserved.
//

import UIKit
import SVProgressHUD

let StatusCellNormalId = "StatusCellNormalId"

class HomeViewController: VisitorTableViewController {
    
    /// 微博列表视图模型
    private var statusListViewModel = StatusListViewModel()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        if !UserAccountViewModel.sharedUserAccountModel.userLogon {
            visitorView?.setupInfo("关注一些人，回这里看看有什么惊喜", imageName: nil)
            return
        }
        
        prepareTableView()
        
        loadData()
    }

    ///  准备表格
    private func prepareTableView() {
        
        // 注册可重用 cell
        tableView.registerClass(StatusCell.self, forCellReuseIdentifier: StatusCellNormalId)
      
        tableView.backgroundColor = UIColor.whiteColor()
        
        // 取消分割线
        tableView.separatorStyle = .None
        
        // 设置行高
        // 预估行高
        tableView.estimatedRowHeight = 400
        tableView.rowHeight = 400
        //tableView.rowHeight = UITableViewAutomaticDimension
    }
    ///  加载网络数据
    private func loadData() {
        statusListViewModel.loadStatus { (isSuccess) -> () in
            if !isSuccess {
                SVProgressHUD.showErrorWithStatus("您的网络不给力")
            }
            self.tableView.reloadData()
        }
    }
}

// MARK: - 数据源方法
extension HomeViewController {
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return statusListViewModel.statusList.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        let cell = tableView.dequeueReusableCellWithIdentifier(StatusCellNormalId, forIndexPath: indexPath) as! StatusCell
        
        cell.viewModel = statusListViewModel.statusList[indexPath.row]
        
        //print(cell.viewModel?.retweeted_status?.text)
        
        return cell
    }
    
    ///  根据视图模型计算行高
    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        
        return statusListViewModel.statusList[indexPath.row].rowHeight
        
    }
}
